package com.windaka.suizhi.utils;


import com.windaka.suizhi.constant.Constant;
import com.windaka.suizhi.model.dto.BaseDTO;

import java.util.Map;


/**
 * <p><strong>分页查询工具类</strong></p>
 * <p>(已封装进 @PageQuery)</p>
 * <li>
 * <p>
 *     <strong>示例1: 分页</strong> <br>
 *     baseDTO = PageParamUtils.makePaging(baseDTO);
 * </p>
 * </li>
 * @author wzk
 *
 * @see Integer
 * @see Map
 * @see Constant
 * @see CheckParamUtils
 * @since 10:02 2021/5/30
 **/
public class PageParamUtils {

    private PageParamUtils() {}

    /**
     * <li>
     * <p>
     *     <strong>示例1: MySQL分页</strong> <br>
     *     PageParamUtils.checkPage(baseDTO);
     * </p>
     * </li>
     **/
    public static void checkSqlPage(BaseDTO baseDTO) {
        // MySQL 分页是从第1页开始的(需要PageHelper帮助)
        if (CheckParamUtils.isNullOrEmpty(baseDTO.getPage()) || baseDTO.getPage() <= 0) {
            baseDTO.setPage(Constant.DEFAULT_PAGE);
        }
        if (CheckParamUtils.isNullOrEmpty(baseDTO.getLimit()) || baseDTO.getLimit() <= 0) {
            baseDTO.setLimit(Constant.DEFAULT_LIMIT);
        }
    }
    /**
     * <li>
     * <p>
     *     <strong>示例2: es分页</strong> <br>
     *     PageParamUtils.makePaging(baseDTO);
     * </p>
     * </li>
     **/
    public static void checkEsPage(BaseDTO baseDTO) {
        // es分页 需要从 第0页开始
        if (CheckParamUtils.isNullOrEmpty(baseDTO.getPage()) || baseDTO.getPage() <= 0) {
            // 说明参数不符合
            baseDTO.setPage(Constant.DEFAULT_PAGE - 1);
        } else {
            baseDTO.setPage(baseDTO.getPage() - 1);
        }
        if (CheckParamUtils.isNullOrEmpty(baseDTO.getLimit()) || baseDTO.getLimit() <= 0) {
            baseDTO.setLimit(Constant.DEFAULT_LIMIT);
        }
    }
}
